﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ComunesMGI.DataTypes;
using MGI.AccesoDatos;

namespace MGI.Logica
{
    public class MgrClientes
    {
        #region Singleton

        /// <summary>
        /// implementación de singleton para el manejador de clientes
        /// </summary>
        static private MgrClientes _instance;

        /// <summary>
        /// implementación de singleton para el manejador de clientes
        /// retorna una instancia del manejador
        /// </summary>
        /// <returns>MgrClientes</returns>
        static public MgrClientes GetInstance()
        {
            if (_instance == null)
            {
                _instance = new MgrClientes();
            }
            return _instance;
        }

        #endregion

        public List<DataCliente> GetClientes()
        {
            //DataCliente cliente1 = new DataCliente("Cliente1");
            //DataCliente cliente2 = new DataCliente("Cliente2");
            //List<DataCliente> lista = new List<DataCliente>();
            //lista.Add(cliente1);
            //lista.Add(cliente2);
            //return lista;

            AccesoDatosFactory accesoDatosFactory = AccesoDatosFactory.GetInstance();
            IDatosClientes datosclientes = accesoDatosFactory.GetIDatosClientes();
            return datosclientes.GetClientes();

        }

        public bool ContainFileCliente(string cliente)
        {
            AccesoDatosFactory accesoDatosFactory = AccesoDatosFactory.GetInstance();
            IDatosClientes datosclientes = accesoDatosFactory.GetIDatosClientes();
            return datosclientes.ContainFileCliente(cliente);
        }


        public DataCliente GetCliente(int codCliente)
        {
             AccesoDatosFactory accesoDatosFactory = AccesoDatosFactory.GetInstance();
            IDatosClientes datosclientes = accesoDatosFactory.GetIDatosClientes();
            return datosclientes.GetCliente(codCliente);
        }
    }
}
